package demo2;

/**
 * 1. 封装
 * 2. 构造方法
 */
class  Student{
    String id;
    String name;
    private int age;
    private int gender; // 0男 1女
    // 构造函数 设置学生学号
    public Student(String ID){ // 方法名称和类名一致 叫做构造方法
         id = ID;
    }
    // 利用重载技术 构造方法重载
    public Student(){

    }


    void read(){
        System.out.println("大家好,我是"+name+".我在看书");
    }
    /**
     * 成员属性的设置和获取的封装方法
     * 有利于避免低级代码错误
     * 有利于数据校验
     * 利用封装实现复杂功能 方便其他开发人员和自己重复使用代码
     */

    void setAge(int a){ //设置年龄
         if(a<0 || a>150){
             System.out.println("你输入的年龄有误");
         }else {
             age = a;
         }
    }
    int setAge(){ //获取年龄
        return age;
    }
//    转化性别汉字到数字
    void setGender(String g){
        if (g.equals("男")){
            gender =0;
        }else if(g.equals("女")){
            gender =1;
        }else {
            System.out.println("性别有误");
        }
    }
    String getGender(){
        if (gender ==0){
            return  "男";
        }else {
            return "女";
        }
    }
}
public class Demo2 {
    public static void main(String[] args) {
        Student stu1 = new Student("23304010728");
        System.out.println(stu1.id);
        stu1.name = "猪小明";
//        stu1.age=10;// 错误原因 私有属性无法直接修改
        stu1.setAge(18); //设置stu1年龄
        System.out.println(stu1.setAge()); //获取年龄
        stu1.setGender("女");
        System.out.println(stu1.getGender());
    }
}
